package com.leecode.base;


/**
 * 递归实现
 * <p>
 * 找出数组中 固定范围的  元素最大值
 *
 * 疯了采用呢
 */
public class Index_13_递归初识 {

    public static void main(String[] args) {
        int[] arr = {1, 2, 5, 9, 4, 0, 8};
        System.out.println(getMax(arr));
    }

    public static int getMax(int[] arr) {
        return process(arr, 0, arr.length - 1);
    }

    //L....R 数组范围，mid 是数组中位置

    public static int process(int[] arr, int L, int R) {
        if (arr == null || arr.length == 0) {
            return -1;
        }

        if (L == R) {
            return arr[L];
        }

        //int mid = (L + R) / 2;   //L+(R-L)>>1
        int mid = L + ((R - L) >> 1);
        int maxLeft = process(arr, L, mid);
        int maxRight = process(arr, mid + 1, R);
        return Math.max(maxLeft, maxRight);
    }

}
